/*
 * MainColor.cpp
 *
 *  Created on: Jul 29, 2014
 *      Author: correa
 */

#include <iostream>
#include <CplexColorSolver.h>
#include <Grafo.h>
#include <MapaRepresentaciones.h>
#include <TimeLimit.h>

using namespace std;

int main(int argc, char *argv[]) {
	if ( argc < 2 )
	{
		cout << "Llamada: stab <archivo grafo>\n";
		exit(0);
	}

	cout << argv[1] << endl;
	Grafo gg(argv[1]);
	Lista orden(gg.getN());
	gg.vertices().lista(orden);
	gg.decrecienteGrado(orden);
	orden.print();
	Grafo g(gg, orden);
	MatrixOfRepresentaciones mapa(g);
//	g.haceIncambiable();

	int k;
	if (argc == 2)
		k = 0;
	else
		k = atoi(argv[2]);
	CplexColorRD ss(g, mapa, k);
	SeparatorParameters	parameters(RD, Goloso, RD, Clique, 3, 5, 20, 0.01, 50);

	DoubleValueArray& mip = *ss.solve(parameters);
	parameters.print();
//	for (int i = 0; i< g.getN(); i++)
//		cout << mip[i];
//	cout << "\n";
	delete &mip;
//
//	delete ss;
//	delete rd;
//	delete bp;
//	delete subgrafo;
//	delete clique;
//	delete grado;
//	delete g;

	return 0;
}
